package demo.practice.bit;

public class P397 {

    public static void main(String[] args) {
        P397 p397 = new P397();
//        p397.integerReplacement(2147483647);

        System.out.println(-200>>10  );
    }

    public int integerReplacement(int n) {
        int time = 0;
        while (n > 1) {
            if (n == ((1 << 31) - 1))//处理Integer.MAX_VALUE 用例是：2147483647
                n--;

            if ((n & 1) == 0) {
                n = n >> 1;
            } else {
                if (n == 3 || (n & 2) == 0) //大于1的奇数格式为XX01或者XX11， 前者是n--，但 3需要--
                    n--;
                else
                    n++;
            }
            time++;
        }
        return time;
    }
}
